package metier;

/**
 * classe décrivant les caractéristiques d'une tâche définie par
 * 	un numéro : entier permettant de l'identifier
 * 	un libellé (chaîne de caractères) et une charge prévisionnelle en jours homme (entier) 
 *  le matricule du collaborateur responsable de la tâche (entier)
 *  la référence du contrat pour lequel est réalisée la tâche (entier).
 * @author Michele Lamballais
 *
 */
public class Tache {
	 /**
     * Attributs priv�s de la classe Tache
     * numeroTache, matriculeCollaborateur et refernceContrat de type integer 
     * libelle de type String
     * chargePreviJoursHommes de type entier
     */
	 private int numTache;
     private String libelle;
     private int chargePreviJoursHomme;
     private int matriculeCollaborateur;
     private int referenceContrat;
      
     /**
      * constructeur de la classe Tache
      * @param unNumeroTache
      * @param unLibelle
      * @param uneChargePrevi
      * @param unMatricule
      * @param uneReference
      */
      public Tache(int unNumeroTache, String unLibelle, int uneChargePrevi, int unMatricule, int uneReference) {
    	  this.numTache = unNumeroTache;
    	  this.libelle = unLibelle;
    	  this.chargePreviJoursHomme = uneChargePrevi;
    	  this.matriculeCollaborateur = unMatricule;
    	  this.referenceContrat = uneReference;
          
      }

      // accesseurs
      /**
       * fonction geNumTache() : entier 
       * @return la valeur de l'attribut numTache
       */
      public int getNumTache()
      {
          return this.numTache;
      }

      
      /**
       * fonction getLibelle() : chaine de caract�res
       * @return  la valeur de l'attribut libelle
       */
      
      public String getLibelle(){
          return this.libelle;
      }

      /**
       * fonction getChargePreviJoursHomme() : entier
       * @return  la valeur de l'attribut chargePrevisHomme
       */
      public int getChargePreviJoursHomme(){
          return this.chargePreviJoursHomme;
      }
      
      /**
       * fonction getReferenceContrat() : entier
       * @return  la valeur de l'attribut referenceContrat
       */
      public int getReferenceContrat(){
          return this.referenceContrat;
      }

      /**
       * fonction getMatriculeCollaborateur() : entier
       * @return  la valeur de l'attribut matriculeCollaborateur
       */
      public int getMatriculeCollaborateur(){
          return this.matriculeCollaborateur;
      }


     /**
      * procedure setLibelle( une chaine de carateres)
      * @param unLibelle
      */
      public void setLibelle(String unLibelle){
          this.libelle = unLibelle;

      }
      
      /**
       * procedure setChargePreviJoursHomme( un entier)
       * @param uneChargePreviJH
       */
      public void setChargePreviJoursHommePrenom(int uneChargePreviJH){
          this.chargePreviJoursHomme = uneChargePreviJH;
      }
      
      /**
       * procedure setMatriculeCollaborateur( un entier)
       * @param unMatricule
       */
      public void setMatriculeCollaborateurm(int unMatricule){
          this.matriculeCollaborateur = unMatricule;
      }
      
      /**
       * procedure setReferenceContrat( un entier)
       * @param uneReference
       */
      public void setReferenceContrat(int uneReference){
          this.referenceContrat = uneReference;
      }

      // autres m�thodes 
      /**
       * fonction estEgal(Tache): booleen
       * @param uneTache
       * @return true si les 2 objets sont identiques
       *         false s'ils sont diff�rents
       */
      // Changer Equals en equals
      public boolean Equals(Tache uneTache){
    	  if (this.numTache != uneTache.numTache) return false;
          if (! this.libelle.equals(uneTache.libelle) )return false;
          if (this.chargePreviJoursHomme != uneTache.chargePreviJoursHomme )return false;
          if (this.referenceContrat != uneTache.referenceContrat) return false;
          if (this.matriculeCollaborateur != uneTache.matriculeCollaborateur) return false;
          return true;
      }

   
      /**
       * fonction toString(): chaine de caract�res
       * @return objet converti en chaine
       */
      public String toString(){
          String msg = "";
          msg = this.numTache + " "+ this.libelle + " ";
          msg += this.chargePreviJoursHomme + " "; ;
          msg += this.matriculeCollaborateur +" " ;
          msg += this.referenceContrat ;
          return msg;
      }
      
      /**
       * fonction toStringDescriptif(): chaine de caract�res
       * @return objet converti en chaine avec commentaire
       */
      public String toStringDescriptif() {
    	  String msg;
    	  msg = "numero : " + this.numTache + "\n";
    	  msg += "libelle :" + this.libelle + "\n";
          msg += " charge previsionnelle jours homme : " + this.chargePreviJoursHomme +  "\n" ;
          msg += "matricule collaborateur : "  + this.matriculeCollaborateur + "\n";
          msg += "reference contrat : "  + this.referenceContrat ;
          return msg;
      }



}
